﻿Imports Microsoft.Xna.Framework

Module GamePadConsts
    Public Const cnstRightThumbStick As String = "RightThumbStick"
    Public Const cnstLeftThumbStick As String = "LeftThumbStick"
    Public Const cnstMainMovement As String = "MainMovement"
    Public Const cnstSecondaryMovement As String = "SecondaryMovement"

    Public Const cnstRightTrigger As String = "RightTrigger"
    Public Const cnstLeftTrigger As String = "LeftTrigger"
End Module


Public Interface IGamePadInputManager
    Inherits IInputManager

    Function MainMovement() As Vector2
    Function MainSelectPressed() As Boolean
    Function MenuMovement() As Vector2
    Function MenuMainMovement() As Vector2
    Function SecondaryMovement() As Vector2
    Function SecondarySelectPressed() As Boolean
    Function LeftTrigger() As Single
    Function LeftShoulderPressed() As Boolean
    Function BackPressed() As Boolean
    Function StartPressed() As Boolean
    Function RightTrigger() As Single
    Function RightShoulderPressed() As Boolean
    Function APressed() As Boolean
    Function BPressed() As Boolean
    Function XPressed() As Boolean
    Function YPressed() As Boolean
    Function MainSelectDown() As Boolean
    Function SecondarySelectDown() As Boolean
    Function LeftShoulderDown() As Boolean
    Function BackDown() As Boolean
    Function StartDown() As Boolean
    Function RightShoulderDown() As Boolean
    Function ADown() As Boolean
    Function BDown() As Boolean
    Function XDown() As Boolean
    Function YDown() As Boolean
End Interface

Enum GamePadKeys
    MainMovementUp
    MainMovementDown
    MainMovementLeft
    MainMovementRight
    MainSelect
    SecondaryMovementUp
    SecondaryMovementDown
    SecondaryMovementLeft
    SecondaryMovementRight
    SecondarySelect

    LeftTrigger
    LeftShoulder
    RightTrigger
    RightShoulder

    Back
    Start
    A
    B
    X
    Y
End Enum